package com.ibeeking.found.content.service.common.param;

import com.ibeeking.nematos.utils.base.BaseValidationGroup;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @ClassName BroadcastParam
 * @Description
 * @Author ibeeking
 * @Date 2022-02-18 14:11
 **/
@Data
public class BroadcastParam implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @NotNull(message = "请选择分组!", groups = {BaseValidationGroup.Update.class})
    private Long id;
    /**
     * 直播间ID
     */
    private Integer roomId;
    /**
     * 分组id
     */
    @NotNull(message = "请选择分组!", groups = {BaseValidationGroup.Insert.class})
    private Long groupId;

    /**
     * 名字
     */
    @NotBlank(message = "名字不能为空!", groups = {BaseValidationGroup.Insert.class})
    private String roomName;
    /**
     * 直播间描述
     */
    private String remark;
    /**
     * 直播间类型(1: 推流，0：直播)
     */
    @NotNull(message = "请选择直播间类型!", groups = {BaseValidationGroup.Insert.class})
    private Integer liveType;

    /**
     * 开始时间
     */
    @NotNull(message = "请传递直播开始时间!", groups = {BaseValidationGroup.Insert.class})
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime startTime;

    /**
     * 结束时间
     */
    @NotNull(message = "请传递直播结束时间!", groups = {BaseValidationGroup.Insert.class})
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime endTime;

    /**
     * 主播姓名
     */
    @NotNull(message = "请选择主播!", groups = {BaseValidationGroup.Insert.class})
    private String anchorName;

    /**
     * 主播微信号
     */
    @NotEmpty(message = "请输入主播微信号", groups = {BaseValidationGroup.Insert.class})
    private String anchorChat;

    /**
     * 背景图
     */
    @NotEmpty(message = "请上传背景图素材Id", groups = {BaseValidationGroup.Insert.class})
    private String coverImgs;

    /**
     * 分享图
     */
    @NotEmpty(message = "请上传分享图素材Id", groups = {BaseValidationGroup.Insert.class})
    private String shareImgs;

    /**
     * 频道封面图
     */
    @NotEmpty(message = "请上传频道封面图素材Id", groups = {BaseValidationGroup.Insert.class})
    private String feedsImgs;

    /**
     * 背景图
     */
    @NotEmpty(message = "请上传背景图Url地址", groups = {BaseValidationGroup.Insert.class})
    private String coverUrl;

    /**
     * 分享图
     */
    @NotEmpty(message = "请上传分享图Url地址", groups = {BaseValidationGroup.Insert.class})
    private String shareUrl;

    /**
     * 频道封面图
     */
    @NotEmpty(message = "请上传频道封面图Url地址", groups = {BaseValidationGroup.Insert.class})
    private String feedsUrl;

    /**
     * "小程序直播" 小程序二维码
     */
    private String qrcodeUrl;
    /**
     * 发布时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime publishTime;
    /**
     * 直播间公告
     */
    private String bulletin;
    /**
     * 关注量
     */
    private Integer attentionNum;

    /**
     * 直播状态 2-已结束 1-直播中 0-未开始
     */
    private Integer liveStatus;

    /**
     * 是否公开 1-公开 0-未公开
     */
    private Integer publishStatus;
    /**
     * 观看量
     */
    private Integer seeNum;
    /**
     * 点赞量
     */
    private Integer likeNum;
    /**
     * 评论量
     */
    private Integer commentNum;
    /**
     * 开启点赞，0=关，1=开
     */
    @NotNull(message = "请传递是否开启点赞!", groups = {BaseValidationGroup.Insert.class})
    private Integer openLike;
    /**
     * 开启评论，0=关，1=开
     */
    @NotNull(message = "请传递是否开启评论!", groups = {BaseValidationGroup.Insert.class})
    private Integer openComment;
    /**
     * 开启回放，0=关，1=开
     */
    @NotNull(message = "请传递是否开启回放!", groups = {BaseValidationGroup.Insert.class})
    private Integer openReplay;
    /**
     * 开启共享，0=关，1=开
     */
    @NotNull(message = "请传递是否开启共享!", groups = {BaseValidationGroup.Insert.class})
    private Integer openShare;
    /**
     * 开启客服，0=关，1=开
     */
    @NotNull(message = "请传递是否开启客服!", groups = {BaseValidationGroup.Insert.class})
    private Integer openKf;
    /**
     * 开启货架，0=关，1=开
     */
    @NotNull(message = "请传递是否开启货架!", groups = {BaseValidationGroup.Insert.class})
    private Integer openGoods;
}
